﻿using System;
using System.Collections.Generic;
using BlockLogic.Interface.Blocks;

namespace BlockLogic.Interface.Controller
{
    public interface IBlockController
    {
        List<IBlock> Blocks { get; set; }

        IBlock this[Guid id] { get; }

        void AddBlock(IBlock block);

        void RemoveBlock(Guid id);

        void Connect(IInputBlock inBlock, IOutputBlock outBlock);

        void Disconnect(IInputBlock inBlock, IOutputBlock outBlock);
    }
}
